<template>
  <div class="app">
    <h1>count的值是:{{ count }}</h1>
    <button @click="count++">+1</button>
  </div>
</template>
<script>
/*
watchEffect()
  立即运行一个函数，同时响应式地追踪其依赖，并在依赖更改时重新执行。
  详细信息:
    第一个参数就是要运行的副作用函数。这个副作用函数的参数也是一个函数，用来注册清理回调。
    清理回调会在该副作用下一次执行前被调用，可以用来清理无效的副作用，例如等待中的异步请求 (参见下面的示例)。

    第二个参数是一个可选的选项，可以用来调整副作用的刷新时机或调试副作用的依赖。
    默认情况下，侦听器将在组件渲染之前执行。设置 flush: 'post' 将会使侦听器延迟到组件渲染之后再执行。详见回调的触发时机。在某些特殊情况下 (例如要使缓存失效)，可能有必要在响应式依赖发生改变时立即触发侦听器。这可以通过设置 flush: 'sync' 来实现。然而，该设置应谨慎使用，因为如果有多个属性同时更新，这将导致一些性能和数据一致性的问题。
    返回值是一个用来停止该副作用的函数。
*/
import {ref, watchEffect} from "vue";

export default {
  name: 'App',
  setup(props, context) {
    const count = ref(0)
    const stopWatchEffect = watchEffect(() => {
      console.log(count.value)
      if (count.value >= 10) {
        stopWatchEffect()
      }
    })
    return {
      count
    }
  }
}
</script>

<style lang="less"></style>
